1. Memory Writes = Posted Transactions
-
Key behavior:
✅ Requester does not wait for a Completion TLP.
✅ Transaction is considered "done" on that Link once the packet is transmitted successfully. -
Performance impact:
- Faster → no round-trip latency.
- More efficient use of bandwidth → no Completion packets are consuming the Link.
- Great for bulk data transfer (DMA, frame buffers, etc.).
-
Trade-off:
❌ Requester gets no direct feedback.- If Completer has an error, Requester is not notified.
- Completer may log the error and optionally send a Message to the Root Complex → then system software can react.

2. Message Writes = Special Case of Posted Transactions
-
Purpose:
Messages are used to communicate events or signals (instead of data movement).
Examples:- Interrupt requests (MSI/MSI-X)
- Power management events
- Error reporting
-
Routing flexibility:
- Directed message → routed to a specific Completer.
- Broadcast message → Root sends to all Endpoints.
- Implicit Root-directed message → Endpoint sends, automatically routed to Root Complex.
-
Design benefit:
- Eliminates side-band pins that were used in PCI (for interrupts, PME#, SERR#, etc.).
- Reduces board complexity & pin count.
- Everything travels as a normal PCIe TLP.